图表功能 > 数据标签 |
数据标签是图表中关联到数据点的标签。它们在某些类型的图表上非常有用,可以使得更加容易地看到某个特定的数据点属于某一个系列或者该数据点的精确值。
C1Chart 支持数据标签。每个数据系列都有一个PointLabelTemplate(在线文档 'PointLabelTemplate 属性')属性,该属性指定显示在每一个数据点附近的视觉元素。PointLabelTemplate 通常作为一个XAML资源定义,可以通过XAML或代码指定给图表。
您可以添加一个DataTemplate以同时决定数据如何展示以及数据绑定如何访问现有数据。
为定义PointLabelTemplate 为XAML资源,您可以创建一个资源字典,添加DataTemplate 资源至您的资源字典,之后再您的Window.xaml文件中,您可以访问该DataTemplate资源。
添加新资源字典:
为创建一个标签,您需要创建标签模版并将PointLabelTemplate 设置给模版。
当绘制每个数据点的图时,将根据指定的模板创建标签。标签的DataContext属性设置为当前数据点的实例,提供点信息。当使用数据绑定时,它会更容易在标签中显示该信息。
这里是一个标签模板的示例,该模板显示该点的值。
XAML |
拷贝代码
|
---|---|
<DataTemplate x:Key="lbl"> <TextBlock Text="{Binding Path=Value}" /> </DataTemplate> |
定义了资源之后,可以将资源用于通过使用资源标记扩展语法来定义一个属性值,它指定了key的名称。
为了指定模版至数据系列,需要设置PointLabelTemplate 属性,如下所示:
XAML |
拷贝代码
|
---|---|
<c1chart:DataSeries PointLabelTemplate="{StaticResource lbl}" />
|
因为它是一个标准的数据模板,可以建立复杂的标签,例如,下一个样品模板定义为XY图表显示数据点坐标数据标签。
它使用标准的Grid,以两列和两行作为容器。该点的x-值由DataPint类的索引获取。索引器允许为支持多个数据集的数据系列类,比如说XYDataSeries类,获取数值。
XAML |
拷贝代码
|
---|---|
<DataTemplate x:Key="lbl"> <!-- Grid 2x2 with black border --> <Border BorderBrush="Black"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <!-- x-coordinate --> <TextBlock Text="X=" /> <TextBlock Grid.Column="1" Text="{Binding Path=[XValues]}" /> <!-- y-coordinate --> <TextBlock Grid.Row="1" Text="Y=" /> <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=Value}" /> </Grid> </Border> </DataTemplate> |
当显示数值数据值时,通常需要格式化输出值。通过静态类Format(在线文档'Format属性')您可以在XAML代码内部指定标准.NET格式化字符串。例如,示例代码使用转换器来格式化百分比值。
XAML |
拷贝代码
|
---|---|
<DataTemplate x:Key="lbl1"> <TextBlock Text="{Binding Path=PercentageSeries, Converter={x:Static c1chart:Converters.Format}, ConverterParameter=#.#%}"/> </DataTemplate> |